home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / Easy Applet Builder v1.7 / _SETUP.1 / Form.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-11-06  |  13.3 KB  |  613 lines

  1. import java.applet.Applet;
  2. import java.awt.Button;
  3. import java.awt.Checkbox;
  4. import java.awt.CheckboxGroup;
  5. import java.awt.Choice;
  6. import java.awt.Color;
  7. import java.awt.Component;
  8. import java.awt.Container;
  9. import java.awt.Dialog;
  10. import java.awt.Frame;
  11. import java.awt.GridLayout;
  12. import java.awt.Insets;
  13. import java.awt.Label;
  14. import java.awt.LayoutManager;
  15. import java.awt.TextArea;
  16. import java.awt.TextComponent;
  17. import java.awt.TextField;
  18. import java.awt.Toolkit;
  19. import java.awt.event.ActionEvent;
  20. import java.awt.event.ActionListener;
  21. import java.awt.event.WindowEvent;
  22. import java.awt.event.WindowListener;
  23. import java.io.BufferedReader;
  24. import java.io.DataOutputStream;
  25. import java.io.InputStreamReader;
  26. import java.net.InetAddress;
  27. import java.net.MalformedURLException;
  28. import java.net.Socket;
  29. import java.net.URL;
  30. import java.net.URLEncoder;
  31. import java.util.EventObject;
  32.  
  33. public class Form extends Applet implements WindowListener, ActionListener {
  34.    public String url;
  35.    // $FF: renamed from: wi int
  36.    private int field_0;
  37.    // $FF: renamed from: he int
  38.    private int field_1;
  39.    private String agreeText;
  40.    private String disagreeText;
  41.    private Dialog dialog;
  42.    private int mode;
  43.    private String text;
  44.    private int vSpace = 15;
  45.  
  46.    public String getAppletInfo() {
  47.       return "Name: Form\r\nAuthor: Taiji Software\r\n";
  48.    }
  49.  
  50.    public void register() {
  51.       try {
  52.          URL u = new URL("http://www.taijisoftware.com");
  53.          ((Applet)this).getAppletContext().showDocument(u, "_blank");
  54.       } catch (Exception e) {
  55.          System.out.println(e);
  56.          this.stop();
  57.       }
  58.    }
  59.  
  60.    public void init() {
  61.       String codeBase = null;
  62.  
  63.       try {
  64.          codeBase = (new URL(((Applet)this).getCodeBase().toString())).getHost();
  65.          System.out.println("Copyright 1999, 2001 Taiji Software(tm)\nYour domain name is : " + codeBase);
  66.          codeBase = codeBase.toUpperCase();
  67.       } catch (Exception var9) {
  68.       }
  69.  
  70.       if (!((Applet)this).getCodeBase().toString().toUpperCase().startsWith("FILE") || ((Applet)this).getParameter("debug") != null) {
  71.          String regCode = ((Applet)this).getParameter("registration_code");
  72.          if (regCode == null) {
  73.             regCode = ((Applet)this).getParameter("reg_domain");
  74.             if (regCode == null) {
  75.                this.register();
  76.             } else {
  77.                if (regCode.length() == codeBase.length() + 4 && !codeBase.startsWith("WWW.")) {
  78.                   codeBase = "WWW." + codeBase;
  79.                } else if (regCode.length() == codeBase.length() - 4 && codeBase.startsWith("WWW.")) {
  80.                   codeBase = codeBase.substring(4);
  81.                }
  82.  
  83.                char[] chars = new char[codeBase.length()];
  84.                codeBase.getChars(0, codeBase.length(), chars, 0);
  85.                String key = new String("haricot");
  86.                char[] chars2 = new char[key.length()];
  87.                key.getChars(0, key.length(), chars2, 0);
  88.  
  89.                for(int i = 0; i < codeBase.length(); ++i) {
  90.                   int j;
  91.                   if (i >= key.length()) {
  92.                      j = i - key.length() * (i / key.length());
  93.                   } else {
  94.                      j = i;
  95.                   }
  96.  
  97.                   chars[i] += chars2[j];
  98.                   chars[i] = (char)(chars[i] - chars[i] / 26 * 26 + 97);
  99.                }
  100.  
  101.                String res = new String(chars);
  102.                if (!res.equalsIgnoreCase(regCode)) {
  103.                   this.register();
  104.                }
  105.             }
  106.          } else if (!regCode.equals("settevercsedegnamiaj") && !regCode.equals("8078")) {
  107.             this.register();
  108.          }
  109.       }
  110.  
  111.       this.getParameters();
  112.       this.putComponents();
  113.    }
  114.  
  115.    public void stop() {
  116.       if (this.dialog != null && this.dialog.isShowing()) {
  117.          this.dialog.dispose();
  118.       }
  119.  
  120.    }
  121.  
  122.    public void getParameters() {
  123.       this.field_0 = ((Component)this).getSize().width;
  124.       this.field_1 = ((Component)this).getSize().height;
  125.       this.agreeText = ((Applet)this).getParameter("button_send_text");
  126.       if (this.agreeText == null) {
  127.          this.agreeText = "Send";
  128.       }
  129.  
  130.       this.disagreeText = ((Applet)this).getParameter("button_cancel_text");
  131.       if (this.disagreeText == null) {
  132.          this.disagreeText = "Cancel";
  133.       }
  134.  
  135.       ((Component)this).setBackground(this.getColor("background_color"));
  136.       String s = ((Applet)this).getParameter("space");
  137.       if (s != null) {
  138.          this.vSpace = Integer.parseInt(s);
  139.       }
  140.  
  141.    }
  142.  
  143.    public Color getColor(String param) {
  144.       String s = ((Applet)this).getParameter(param);
  145.       if (s != null) {
  146.          if (s.substring(0, 1).equals("#")) {
  147.             s = s.substring(1);
  148.             int i = Integer.parseInt(s, 16);
  149.             return new Color(i);
  150.          } else {
  151.             return null;
  152.          }
  153.       } else {
  154.          return null;
  155.       }
  156.    }
  157.  
  158.    public void putComponents() {
  159.       String s = ((Applet)this).getParameter("frame_width");
  160.       int dialogWidth;
  161.       if (s != null) {
  162.          dialogWidth = Integer.parseInt(s);
  163.       } else {
  164.          dialogWidth = 200;
  165.       }
  166.  
  167.       s = ((Applet)this).getParameter("frame_height");
  168.       int dialogHeight;
  169.       if (s != null) {
  170.          dialogHeight = Integer.parseInt(s);
  171.       } else {
  172.          dialogHeight = 200;
  173.       }
  174.  
  175.       s = ((Applet)this).getParameter("mode");
  176.       if (s != null) {
  177.          this.mode = Integer.parseInt(s);
  178.       }
  179.  
  180.       s = ((Applet)this).getParameter("frame_title");
  181.       if (s == null) {
  182.          s = "Information";
  183.       }
  184.  
  185.       Frame f = new Frame();
  186.       this.dialog = new Dialog(f, s);
  187.       this.dialog.setLayout((LayoutManager)null);
  188.       this.dialog.addWindowListener(this);
  189.       Toolkit toolkit = Toolkit.getDefaultToolkit();
  190.       int width = toolkit.getScreenSize().width;
  191.       int height = toolkit.getScreenSize().height;
  192.       if (((Applet)this).getParameter("frame_background_color") != null) {
  193.          this.dialog.setBackground(this.getColor("frame_background_color"));
  194.       } else {
  195.          this.dialog.setBackground((new Button()).getBackground());
  196.       }
  197.  
  198.       this.dialog.setResizable(true);
  199.       this.dialog.setVisible(true);
  200.       this.dialog.setBounds((width - dialogWidth) / 2, (height - dialogHeight) / 2, dialogWidth, dialogHeight);
  201.       Insets insets = this.dialog.getInsets();
  202.       this.dialog.dispose();
  203.       Button b1 = new Button(this.agreeText);
  204.       Button b2 = new Button(this.disagreeText);
  205.       ((Container)this).add(b1);
  206.       ((Container)this).add(b2);
  207.       int w = ((Component)b1).getPreferredSize().width;
  208.       int w2 = ((Component)b2).getPreferredSize().width;
  209.       if (w2 > w) {
  210.          w = w2;
  211.       }
  212.  
  213.       ((Container)this).remove(b1);
  214.       ((Container)this).remove(b2);
  215.       this.dialog.add(b1);
  216.       this.dialog.add(b2);
  217.       b1.addActionListener(this);
  218.       b2.addActionListener(this);
  219.       int space = (dialogWidth - 2 * w) / 3;
  220.       ((Component)b1).setBounds(space, dialogHeight - 15 - insets.bottom - 20, w, 25);
  221.       ((Component)b2).setBounds(2 * space + w, dialogHeight - 15 - insets.bottom - 20, w, 25);
  222.       ((Component)b1).setName("b1");
  223.       ((Component)b2).setName("b2");
  224.       int vCount = insets.top + 5;
  225.       int cWidth = 0;
  226.       int cHeight = 0;
  227.       int n = 1;
  228.  
  229.       while(true) {
  230.          s = ((Applet)this).getParameter("component" + Integer.toString(n));
  231.          if (s == null) {
  232.             s = ((Applet)this).getParameter("button_show_text");
  233.             if (s == null) {
  234.                s = "Enter !";
  235.             }
  236.  
  237.             if (this.mode == 1) {
  238.                Button showButton = new Button(s);
  239.                showButton.addActionListener(this);
  240.                ((Container)this).setLayout(new GridLayout(1, 1));
  241.                ((Container)this).add(showButton);
  242.                return;
  243.             }
  244.  
  245.             this.dialog.show();
  246.             return;
  247.          }
  248.  
  249.          String[] params = this.getStrings(s);
  250.          if (!params[0].equals("label")) {
  251.             cWidth = Integer.parseInt(params[2]);
  252.             cHeight = Integer.parseInt(params[3]);
  253.          }
  254.  
  255.          if (params[0].equals("label")) {
  256.             cWidth = Integer.parseInt(params[1]);
  257.             cHeight = Integer.parseInt(params[2]);
  258.             Label l = new Label(params[3]);
  259.             ((Component)l).setName("out");
  260.             this.dialog.add(l);
  261.             if (cWidth == 0) {
  262.                cWidth = 15 + 7 * params[3].length();
  263.             }
  264.  
  265.             if (cHeight == 0) {
  266.                cHeight = 15;
  267.             }
  268.  
  269.             ((Component)l).setBounds(10, vCount, cWidth, cHeight);
  270.             vCount += cHeight;
  271.          }
  272.  
  273.          if (params[0].equals("checkbox")) {
  274.             boolean checked = false;
  275.             if (params[5].equals("yes")) {
  276.                checked = true;
  277.             }
  278.  
  279.             Checkbox c = new Checkbox(params[4], checked);
  280.             ((Component)c).setName(params[1]);
  281.             this.dialog.add(c);
  282.             if (cWidth == 0) {
  283.                cWidth = 15 + 8 * params[4].length();
  284.             }
  285.  
  286.             if (cHeight == 0) {
  287.                cHeight = 20;
  288.             }
  289.  
  290.             ((Component)c).setBounds(10, vCount, cWidth, cHeight);
  291.             vCount += cHeight + this.vSpace;
  292.          } else if (params[0].equals("radiogroup")) {
  293.             CheckboxGroup cbg = new CheckboxGroup();
  294.             int NChecked = Integer.parseInt(params[params.length - 1]);
  295.  
  296.             for(int i = 4; i < params.length - 1; ++i) {
  297.                cWidth = Integer.parseInt(params[2]);
  298.                cHeight = Integer.parseInt(params[3]);
  299.                boolean checked = false;
  300.                if (i == NChecked + 3) {
  301.                   checked = true;
  302.                }
  303.  
  304.                Checkbox c = new Checkbox(params[i], cbg, checked);
  305.                ((Component)c).setName(params[1]);
  306.                this.dialog.add(c);
  307.                if (cWidth == 0) {
  308.                   cWidth = 25 + 8 * params[i].length();
  309.                }
  310.  
  311.                if (cHeight == 0) {
  312.                   cHeight = 20;
  313.                } else {
  314.                   cHeight /= params.length - 5;
  315.                }
  316.  
  317.                ((Component)c).setBounds(10, vCount, cWidth, cHeight);
  318.                if (i != params.length - 2) {
  319.                   vCount += cHeight + 4;
  320.                }
  321.             }
  322.  
  323.             vCount += cHeight + this.vSpace;
  324.          } else if (params[0].equals("combobox")) {
  325.             Choice c = new Choice();
  326.             ((Component)c).setName(params[1]);
  327.             int NChecked = Integer.parseInt(params[params.length - 1]);
  328.             int lMax = 0;
  329.  
  330.             for(int i = 4; i < params.length - 1; ++i) {
  331.                c.add(params[i]);
  332.                if (params[i].length() > lMax) {
  333.                   lMax = params[i].length();
  334.                }
  335.  
  336.                this.dialog.add(c);
  337.             }
  338.  
  339.             c.select(NChecked - 1);
  340.             if (cWidth == 0) {
  341.                cWidth = 15 + 8 * lMax;
  342.             }
  343.  
  344.             if (cHeight == 0) {
  345.                cHeight = 20;
  346.             }
  347.  
  348.             ((Component)c).setBounds(10, vCount, cWidth, cHeight);
  349.             vCount += cHeight + this.vSpace;
  350.          } else if (params[0].equals("textfield")) {
  351.             TextField tf = new TextField();
  352.             ((Component)tf).setName(params[1]);
  353.             if (cWidth == 0) {
  354.                cWidth = 15 + 7 * params[4].length();
  355.             }
  356.  
  357.             if (cHeight == 0) {
  358.                cHeight = 20;
  359.             }
  360.  
  361.             this.dialog.add(tf);
  362.             ((Component)tf).setBounds(10, vCount, cWidth, cHeight);
  363.             ((TextComponent)tf).setText(params[4]);
  364.             vCount += cHeight + this.vSpace;
  365.          } else if (params[0].equals("textarea")) {
  366.             String text = "";
  367.             int l = 0;
  368.  
  369.             for(int i = 4; i < params.length; ++i) {
  370.                text = text + params[i] + "\n";
  371.                if (params[i].length() > l) {
  372.                   l = params[i].length();
  373.                }
  374.             }
  375.  
  376.             TextArea ta = new TextArea(text);
  377.             ((Component)ta).setName(params[1]);
  378.             if (cWidth == 0) {
  379.                cWidth = 30 + 7 * l;
  380.             }
  381.  
  382.             if (cHeight == 0) {
  383.                cHeight = 60;
  384.             }
  385.  
  386.             this.dialog.add(ta);
  387.             ((Component)ta).setBounds(10, vCount, cWidth, cHeight);
  388.             vCount += cHeight + this.vSpace;
  389.          }
  390.  
  391.          ++n;
  392.       }
  393.    }
  394.  
  395.    public void send(String body) {
  396.       String sender = ((Applet)this).getParameter("sender_email");
  397.       if (sender == null) {
  398.          sender = "home@taijisoftware.com";
  399.       }
  400.  
  401.       String recipient = ((Applet)this).getParameter("recipient_email");
  402.       if (recipient == null) {
  403.          recipient = "home@taijisoftware.com";
  404.       }
  405.  
  406.       System.out.println(sender);
  407.       System.out.println(recipient);
  408.       String ip = null;
  409.  
  410.       try {
  411.          ip = InetAddress.getLocalHost().getHostAddress();
  412.       } catch (Exception var11) {
  413.          ip = "could not read ip";
  414.       }
  415.  
  416.       System.out.println(ip);
  417.       String host = null;
  418.  
  419.       try {
  420.          host = InetAddress.getLocalHost().getHostName();
  421.       } catch (Exception var10) {
  422.          host = "could not read host name";
  423.       }
  424.  
  425.       System.out.println(host);
  426.  
  427.       try {
  428.          System.out.println(((Applet)this).getCodeBase().getHost());
  429.          Socket sock = new Socket(((Applet)this).getCodeBase().getHost(), 25);
  430.          System.out.println("socket ok");
  431.          DataOutputStream out = new DataOutputStream(sock.getOutputStream());
  432.          System.out.println("out ok");
  433.          BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
  434.          System.out.println("in ok");
  435.          this.isOk(in);
  436.          out.writeBytes("HELO FormApplet\r\n");
  437.          this.isOk(in);
  438.          out.writeBytes("MAIL FROM:<" + sender + ">\r\n");
  439.          this.isOk(in);
  440.          out.writeBytes("RCPT TO:<" + recipient + ">\r\n");
  441.          this.isOk(in);
  442.          out.writeBytes("DATA\r\n");
  443.          this.isOk(in);
  444.          out.writeBytes(body + "\r\n.\r\nQUIT\r\n");
  445.          this.isOk(in);
  446.          sock.close();
  447.       } catch (Exception e) {
  448.          System.out.println(e);
  449.       }
  450.    }
  451.  
  452.    public void isOk(BufferedReader in) {
  453.       String s = "";
  454.  
  455.       try {
  456.          s = in.readLine();
  457.          System.out.println(s);
  458.       } catch (Exception e) {
  459.          System.out.println("problem: " + ((Throwable)e).toString());
  460.          this.stop();
  461.       }
  462.  
  463.       if (s.startsWith("4") || s.startsWith("5")) {
  464.          System.out.println(s);
  465.          this.stop();
  466.       }
  467.  
  468.    }
  469.  
  470.    public String[] getStrings(String s) {
  471.       int p = 0;
  472.  
  473.       int n;
  474.       for(n = 0; (p = s.indexOf("#", p)) != -1; ++p) {
  475.          ++n;
  476.       }
  477.  
  478.       String[] values = new String[n + 1];
  479.  
  480.       for(int i = 0; i < n; ++i) {
  481.          p = s.indexOf("#");
  482.          values[i] = s.substring(0, p);
  483.          s = s.substring(p + 1);
  484.       }
  485.  
  486.       values[n] = s;
  487.       return values;
  488.    }
  489.  
  490.    public void actionPerformed(ActionEvent event) {
  491.       if (((EventObject)event).getSource() instanceof Button) {
  492.          String s = ((Button)((EventObject)event).getSource()).getLabel();
  493.          if (s.equals(this.agreeText)) {
  494.             this.quitDialog(true);
  495.          } else if (s.equals(this.disagreeText)) {
  496.             this.quitDialog(false);
  497.          } else {
  498.             this.dialog.show();
  499.          }
  500.       }
  501.    }
  502.  
  503.    public void quitDialog(boolean agree) {
  504.       String link;
  505.       if (agree) {
  506.          String body = "";
  507.          String header = ((Applet)this).getParameter("email_header");
  508.          if (header == null) {
  509.             header = "Components names and values: \n----------------------------\n";
  510.          } else {
  511.             header = header + "\n\n";
  512.          }
  513.  
  514.          body = body + header;
  515.  
  516.          for(int i = 0; i < this.dialog.getComponentCount(); ++i) {
  517.             Component comp = this.dialog.getComponents()[i];
  518.             String name = comp.getName();
  519.             if (!name.equals("b1") && !name.equals("b2") && !name.equals("out")) {
  520.                if (comp instanceof TextField) {
  521.                   body = body + name + ": " + ((TextField)comp).getText() + "\n\n";
  522.                } else if (comp instanceof Checkbox) {
  523.                   CheckboxGroup cbg = ((Checkbox)comp).getCheckboxGroup();
  524.                   if (cbg == null) {
  525.                      String checked = "no";
  526.                      if (((Checkbox)comp).getState()) {
  527.                         checked = "yes";
  528.                      }
  529.  
  530.                      body = body + name + ": " + checked + "\n\n";
  531.                   } else {
  532.                      Checkbox c = (Checkbox)comp;
  533.                      if (c.getState()) {
  534.                         body = body + ((Component)c).getName() + ": " + c.getLabel() + "\n\n";
  535.                      }
  536.                   }
  537.                } else if (comp instanceof Choice) {
  538.                   body = body + name + ": " + ((Choice)comp).getSelectedItem() + "\n\n";
  539.                } else if (comp instanceof TextArea) {
  540.                   body = body + name + ": \n" + ((TextArea)comp).getText() + "\n\n";
  541.                }
  542.             }
  543.          }
  544.  
  545.          System.out.println(body);
  546.          this.send(body);
  547.          link = ((Applet)this).getParameter("send_link");
  548.       } else {
  549.          link = ((Applet)this).getParameter("cancel_link");
  550.       }
  551.  
  552.       if (link != null) {
  553.          String target = ((Applet)this).getParameter("target");
  554.          if (target == null) {
  555.             target = "_blank";
  556.          }
  557.  
  558.          URL u = this.giveURL(link);
  559.          ((Applet)this).getAppletContext().showDocument(u, target);
  560.       }
  561.  
  562.       this.dialog.dispose();
  563.    }
  564.  
  565.    public void windowClosing(WindowEvent e) {
  566.       this.quitDialog(false);
  567.    }
  568.  
  569.    public void windowClosed(WindowEvent e) {
  570.    }
  571.  
  572.    public void windowOpened(WindowEvent e) {
  573.    }
  574.  
  575.    public void windowIconified(WindowEvent e) {
  576.    }
  577.  
  578.    public void windowDeiconified(WindowEvent e) {
  579.    }
  580.  
  581.    public void windowActivated(WindowEvent e) {
  582.    }
  583.  
  584.    public void windowDeactivated(WindowEvent e) {
  585.    }
  586.  
  587.    public URL giveURL(String url) {
  588.       try {
  589.          if (url.toUpperCase().startsWith("HTTP")) {
  590.             return new URL(url);
  591.          } else if (url.toUpperCase().startsWith("FTP")) {
  592.             int p = url.indexOf(":");
  593.             int p2 = url.indexOf(":", p + 1);
  594.             if (p2 != -1) {
  595.                url = url.substring(0, p + 3) + URLEncoder.encode(url.substring(p + 3, url.length()));
  596.             }
  597.  
  598.             p = url.indexOf("%40");
  599.             if (p != -1) {
  600.                url = url.substring(0, p) + "@" + url.substring(p + 3, url.length());
  601.             }
  602.  
  603.             return new URL(url);
  604.          } else {
  605.             return new URL(((Applet)this).getCodeBase(), url);
  606.          }
  607.       } catch (MalformedURLException e) {
  608.          System.out.println(e);
  609.          return null;
  610.       }
  611.    }
  612. }
  613.